8622. Делимость на цифры

 

Дано четырехзначное натуральное число. Определите, делится ли это число нацело на все свои цифры.

 

Вход. Одно четырехзначное натуральное число n.

 

Выход. Выведите YES, если число n делится на все свои цифры, и NOиначе.

 

Пример входа 1

Пример выхода 1

2244

YES

 

 

Пример входа 2

Пример выхода 2

2344

NO

 

 

РЕШЕНИЕ

условный оператор

 

Анализ алгоритма

Найдем цифры числа n = . Ни одна из этих цифр не должна равняться нулю, так как на 0 делить нельзя. Например, для числа 4000 или 3405 ответ будет  “NO”.

Для решения задачи сначала следует проверить, что ни одна из цифр числа n не равна 0, а также то что n делится на a, b, c и d.

 

Реализация алгоритма

Читаем входное значение n.

 

scanf("%d", &n);

 

Пусть n = . Находим цифры a, b, c, d числа n.

 

a = n / 1000;

b = n / 100 % 10;

c = n / 10 % 10;

d = n % 10;

 

Проверяем, не равна ли каждая из цифр числа n нулю. Проверяем, делится ли число n на a, b, c и d.

 

if (a != 0 && b != 0 && c != 0 && d != 0 &&

    n % a == 0 && n % b == 0 && n % c == 0 && n % d == 0)

  printf("YES\n");

else

  printf("NO\n");

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int n = con.nextInt();

    int a = n / 1000;

    int b = n / 100 % 10;

    int c = n / 10 % 10;

    int d = n % 10;

    if (a != 0 && b != 0 && c != 0 && d != 0 &&

        n % a == 0 && n % b == 0 && n % c == 0 && n % d == 0)

       System.out.println("YES");

    else

       System.out.println("NO");

    con.close();

  }

}

 

Python реализация

 

n = int(input())

a = n // 1000

b = n // 100 % 10

c = n // 10 % 10

d = n % 10

if a != 0 and b != 0 and c != 0 and d != 0 and

   n % a == 0 and n % b == 0 and n % c == 0 and n % d == 0:

  print("YES")

else:

  print("NO")